package com.youkeyi.ddy.cloud.basic.crm.customer.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

/**
 * <p>
 * 客户信息
 * </p>
 *
 * @author xiawang.liu
 * @since 2024-05-02
 */
@TableName("sys_customer")
public class SysCustomer extends Model<SysCustomer> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("primary_key")
    private String primaryKey;

    /**
     * 解决并发更新问题,每次更新需要用 uuid 做比较判断数据是否已变更
     */
    @TableField("uuid")
    private String uuid;

    /**
     * 旧的uuid,mybatis 更新时需要
     */
    @TableField("old_uuid")
    private String oldUuid;

    /**
     * 主体key
     */
    @TableField("corp_key")
    private String corpKey;

    /**
     * 客服主体
     */
    @TableField("cs_corp_key")
    private String csCorpKey;

    /**
     * 客服key
     */
    @TableField("cs_user_key")
    private String csUserKey;

    /**
     * 客服姓名
     */
    @TableField("cs_user_name")
    private String csUserName;

    /**
     * 来源主体
     */
    @TableField("source_corp_key")
    private String sourceCorpKey;

    /**
     * 来源的顾问key
     */
    @TableField("source_user_key")
    private String sourceUserKey;

    /**
     * 来源的顾问姓名
     */
    @TableField("source_user_name")
    private String sourceUserName;

    /**
     * 来源渠道
     */
    @TableField("source_channel")
    private String sourceChannel;

    /**
     * 顾问主体
     */
    @TableField("adviser_corp_key")
    private String adviserCorpKey;

    /**
     * 分配给的顾问key
     */
    @TableField("adviser_user_key")
    private String adviserUserKey;

    /**
     * 分配给的顾问姓名
     */
    @TableField("adviser_user_name")
    private String adviserUserName;

    /**
     * 服务主体
     */
    @TableField("server_corp_key")
    private String serverCorpKey;

    /**
     * 服务的顾问key
     */
    @TableField("server_user_key")
    private String serverUserKey;

    /**
     * 服务的顾问姓名
     */
    @TableField("server_user_name")
    private String serverUserName;

    /**
     * 客户类型
     */
    @TableField("customer_type_key")
    private String customerTypeKey;

    /**
     * 客户编码：部门编号-年-月-日-六位数字
     */
    @TableField("code")
    private String code;

    /**
     * 客户姓名
     */
    @TableField("name")
    private String name;

    /**
     * 英文姓名
     */
    @TableField("english_name")
    private String englishName;

    /**
     * 微信ID或微信名
     */
    @TableField("wechat_id")
    private String wechatId;

    /**
     * 性别：male 男 female 女
     */
    @TableField("sex")
    private String sex;

    /**
     * 身高
     */
    @TableField("height")
    private String height;

    /**
     * 体重
     */
    @TableField("weight")
    private String weight;

    /**
     * 生日
     */
    @TableField("birthday")
    private Date birthday;

    /**
     * 联系电话
     */
    @TableField("phone")
    private String phone;

    /**
     * 状态:0 未分配、1 待分配、2 未联系、3 跟进中、4 联系不上、5 已评估、6 已签、7 无效
     */
    @TableField("status")
    private Integer status;

    /**
     * 身份证
     */
    @TableField("id_card")
    private String idCard;

    /**
     * email
     */
    @TableField("email")
    private String email;

    /**
     * 地址
     */
    @TableField("address")
    private String address;
    /**
     * 学历
     */
    @TableField("educational")
    private String educational;

    /**
     * 紧急联系人姓名
     */
    @TableField("emergency_contact_name")
    private String emergencyContactName;

    /**
     * 紧急联系人手机
     */
    @TableField("emergency_contact_phone")
    private String emergencyContactPhone;

    /**
     * 紧急联系人关系
     */
    @TableField("emergency_contact_relationship")
    private String emergencyContactRelationship;

    /**
     * 客户所属公司
     */
    @TableField("company")
    private String company;

    /**
     * 公司职位
     */
    @TableField("job_title")
    private String jobTitle;

    /**
     * 所属行业
     */
    @TableField("industry")
    private String industry;

    /**
     * 账户类型 0 个人账户 1 公司账户
     */
    @TableField("account_type")
    private Integer accountType;

    /**
     * 账户名称
     */
    @TableField("account_name")
    private String accountName;

    /**
     * 开户银行
     */
    @TableField("bank")
    private String bank;

    /**
     * 银行账号
     */
    @TableField("bank_no")
    private String bankNo;

    /**
     * 营业执照
     */
    @TableField("license_name")
    private String licenseName;

    /**
     * 营业执照编码即税号
     */
    @TableField("license_code")
    private String licenseCode;

    /**
     * 客户年均月收入rmb
     */
    @TableField("income_rmb")
    private BigDecimal incomeRmb;

    /**
     * 客户年均月收入hkd
     */
    @TableField("income_hkd")
    private BigDecimal incomeHkd;

    /**
     * 潜在客户来源(客户是如何找到或接触到公司的，如：广告、推荐、社交媒体等)
     */
    @TableField("lead_source")
    private String leadSource;

    /**
     * 潜在需求key 多选 英文;分隔
     */
    @TableField("potential_demand_key")
    private String potentialDemandKey;

    /**
     * 潜在需求name 多选 英文;分隔
     */
    @TableField("potential_demand_name")
    private String potentialDemandName;

    /**
     * 转介主体key，即推荐客户主体key
     */
    @TableField("referal_corp_key")
    private String referalCorpKey;

    /**
     * 转介主体名
     */
    @TableField("referal_corp_name")
    private String referalCorpName;

    /**
     * 转介推荐人用户key
     */
    @TableField("referal_user_key")
    private String referalUserKey;

    /**
     * 转介推荐人用户名
     */
    @TableField("referal_user_name")
    private String referalUserName;

    /**
     * 转介时间
     */
    @TableField("referal_time")
    private Date referalTime;

    /**
     * 省
     */
    @TableField("province")
    private String province;

    /**
     * 市
     */
    @TableField("city")
    private String city;

    /**
     * 顾问标记
     */
    @TableField("adviser_flag")
    private String adviserFlag;

    /**
     * 打标记的顾问key
     */
    @TableField("adviser_flag_user_key")
    private String adviserFlagUserKey;

    /**
     * 打标记的顾问姓名
     */
    @TableField("adviser_flag_user_name")
    private String adviserFlagUserName;

    /**
     * 客服标记
     */
    @TableField("cs_flag")
    private String csFlag;

    /**
     * 打标记的客服key
     */
    @TableField("cs_flag_user_key")
    private String csFlagUserKey;

    /**
     * 打标记的客服姓名
     */
    @TableField("cs_flag_user_name")
    private String csFlagUserName;

    /**
     * 地点
     */
    @TableField("place")
    private String place;

    /**
     * 客户情况说明
     */
    @TableField("remark")
    private String remark;

    /**
     * 初次跟进时间
     */
    @TableField("initial_follow_time")
    private Date initialFollowTime;

    /**
     * 初步跟进说明
     */
    @TableField("initial_follow_desc")
    private String initialFollowDesc;

    /**
     * 评估日期
     */
    @TableField("evaluation_date")
    private Date evaluationDate;

    /**
     * 签证到期日期
     */
    @TableField("visa_expiration_date")
    private Date visaExpirationDate;

    /**
     * 附件key，多个时用英文;分隔
     */
    @TableField("annex_key")
    private String annexKey;

    /**
     * 是否删除
     */
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 创建人（客服的用户key）
     */
    @TableField("create_user_key")
    private String createUserKey;

    /**
     * 创建人名称（客服的用户名）
     */
    @TableField("create_user_name")
    private String createUserName;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField("update_user_key")
    private String updateUserKey;

    /**
     * 更新人名称
     */
    @TableField("update_user_name")
    private String updateUserName;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getPrimaryKey() {
        return primaryKey;
    }

    public void setPrimaryKey(String primaryKey) {
        this.primaryKey = primaryKey;
    }
    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }
    public String getOldUuid() {
        return oldUuid;
    }

    public void setOldUuid(String oldUuid) {
        this.oldUuid = oldUuid;
    }
    public String getCorpKey() {
        return corpKey;
    }

    public void setCorpKey(String corpKey) {
        this.corpKey = corpKey;
    }
    public String getCsCorpKey() {
        return csCorpKey;
    }

    public void setCsCorpKey(String csCorpKey) {
        this.csCorpKey = csCorpKey;
    }
    public String getCsUserKey() {
        return csUserKey;
    }

    public void setCsUserKey(String csUserKey) {
        this.csUserKey = csUserKey;
    }
    public String getCsUserName() {
        return csUserName;
    }

    public void setCsUserName(String csUserName) {
        this.csUserName = csUserName;
    }
    public String getSourceCorpKey() {
        return sourceCorpKey;
    }

    public void setSourceCorpKey(String sourceCorpKey) {
        this.sourceCorpKey = sourceCorpKey;
    }
    public String getSourceUserKey() {
        return sourceUserKey;
    }

    public void setSourceUserKey(String sourceUserKey) {
        this.sourceUserKey = sourceUserKey;
    }
    public String getSourceUserName() {
        return sourceUserName;
    }

    public void setSourceUserName(String sourceUserName) {
        this.sourceUserName = sourceUserName;
    }
    public String getSourceChannel() {
        return sourceChannel;
    }

    public void setSourceChannel(String sourceChannel) {
        this.sourceChannel = sourceChannel;
    }
    public String getAdviserCorpKey() {
        return adviserCorpKey;
    }

    public void setAdviserCorpKey(String adviserCorpKey) {
        this.adviserCorpKey = adviserCorpKey;
    }
    public String getAdviserUserKey() {
        return adviserUserKey;
    }

    public void setAdviserUserKey(String adviserUserKey) {
        this.adviserUserKey = adviserUserKey;
    }
    public String getAdviserUserName() {
        return adviserUserName;
    }

    public void setAdviserUserName(String adviserUserName) {
        this.adviserUserName = adviserUserName;
    }
    public String getServerCorpKey() {
        return serverCorpKey;
    }

    public void setServerCorpKey(String serverCorpKey) {
        this.serverCorpKey = serverCorpKey;
    }
    public String getServerUserKey() {
        return serverUserKey;
    }

    public void setServerUserKey(String serverUserKey) {
        this.serverUserKey = serverUserKey;
    }
    public String getServerUserName() {
        return serverUserName;
    }

    public void setServerUserName(String serverUserName) {
        this.serverUserName = serverUserName;
    }
    public String getCustomerTypeKey() {
        return customerTypeKey;
    }

    public void setCustomerTypeKey(String customerTypeKey) {
        this.customerTypeKey = customerTypeKey;
    }
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getEnglishName() {
        return englishName;
    }

    public void setEnglishName(String englishName) {
        this.englishName = englishName;
    }
    public String getWechatId() {
        return wechatId;
    }

    public void setWechatId(String wechatId) {
        this.wechatId = wechatId;
    }
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getHeight() {
        return height;
    }

    public void setHeight(String height) {
        this.height = height;
    }
    public String getWeight() {
        return weight;
    }

    public void setWeight(String weight) {
        this.weight = weight;
    }
    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
    public String getEmergencyContactName() {
        return emergencyContactName;
    }

    public void setEmergencyContactName(String emergencyContactName) {
        this.emergencyContactName = emergencyContactName;
    }
    public String getEmergencyContactPhone() {
        return emergencyContactPhone;
    }

    public void setEmergencyContactPhone(String emergencyContactPhone) {
        this.emergencyContactPhone = emergencyContactPhone;
    }
    public String getEmergencyContactRelationship() {
        return emergencyContactRelationship;
    }

    public void setEmergencyContactRelationship(String emergencyContactRelationship) {
        this.emergencyContactRelationship = emergencyContactRelationship;
    }
    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }
    public String getJobTitle() {
        return jobTitle;
    }

    public void setJobTitle(String jobTitle) {
        this.jobTitle = jobTitle;
    }
    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }
    public Integer getAccountType() {
        return accountType;
    }

    public void setAccountType(Integer accountType) {
        this.accountType = accountType;
    }
    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }
    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }
    public String getBankNo() {
        return bankNo;
    }

    public void setBankNo(String bankNo) {
        this.bankNo = bankNo;
    }
    public String getLicenseName() {
        return licenseName;
    }

    public void setLicenseName(String licenseName) {
        this.licenseName = licenseName;
    }
    public String getLicenseCode() {
        return licenseCode;
    }

    public void setLicenseCode(String licenseCode) {
        this.licenseCode = licenseCode;
    }
    public BigDecimal getIncomeRmb() {
        return incomeRmb;
    }

    public void setIncomeRmb(BigDecimal incomeRmb) {
        this.incomeRmb = incomeRmb;
    }
    public BigDecimal getIncomeHkd() {
        return incomeHkd;
    }

    public void setIncomeHkd(BigDecimal incomeHkd) {
        this.incomeHkd = incomeHkd;
    }
    public String getLeadSource() {
        return leadSource;
    }

    public void setLeadSource(String leadSource) {
        this.leadSource = leadSource;
    }
    public String getPotentialDemandKey() {
        return potentialDemandKey;
    }

    public void setPotentialDemandKey(String potentialDemandKey) {
        this.potentialDemandKey = potentialDemandKey;
    }
    public String getPotentialDemandName() {
        return potentialDemandName;
    }

    public void setPotentialDemandName(String potentialDemandName) {
        this.potentialDemandName = potentialDemandName;
    }
    public String getReferalCorpKey() {
        return referalCorpKey;
    }

    public void setReferalCorpKey(String referalCorpKey) {
        this.referalCorpKey = referalCorpKey;
    }
    public String getReferalCorpName() {
        return referalCorpName;
    }

    public void setReferalCorpName(String referalCorpName) {
        this.referalCorpName = referalCorpName;
    }
    public String getReferalUserKey() {
        return referalUserKey;
    }

    public void setReferalUserKey(String referalUserKey) {
        this.referalUserKey = referalUserKey;
    }
    public String getReferalUserName() {
        return referalUserName;
    }

    public void setReferalUserName(String referalUserName) {
        this.referalUserName = referalUserName;
    }
    public Date getReferalTime() {
        return referalTime;
    }

    public void setReferalTime(Date referalTime) {
        this.referalTime = referalTime;
    }
    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
    public String getAdviserFlag() {
        return adviserFlag;
    }

    public void setAdviserFlag(String adviserFlag) {
        this.adviserFlag = adviserFlag;
    }
    public String getAdviserFlagUserKey() {
        return adviserFlagUserKey;
    }

    public void setAdviserFlagUserKey(String adviserFlagUserKey) {
        this.adviserFlagUserKey = adviserFlagUserKey;
    }
    public String getAdviserFlagUserName() {
        return adviserFlagUserName;
    }

    public void setAdviserFlagUserName(String adviserFlagUserName) {
        this.adviserFlagUserName = adviserFlagUserName;
    }
    public String getCsFlag() {
        return csFlag;
    }

    public void setCsFlag(String csFlag) {
        this.csFlag = csFlag;
    }
    public String getCsFlagUserKey() {
        return csFlagUserKey;
    }

    public void setCsFlagUserKey(String csFlagUserKey) {
        this.csFlagUserKey = csFlagUserKey;
    }
    public String getCsFlagUserName() {
        return csFlagUserName;
    }

    public void setCsFlagUserName(String csFlagUserName) {
        this.csFlagUserName = csFlagUserName;
    }
    public String getPlace() {
        return place;
    }

    public void setPlace(String place) {
        this.place = place;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Date getInitialFollowTime() {
        return initialFollowTime;
    }

    public void setInitialFollowTime(Date initialFollowTime) {
        this.initialFollowTime = initialFollowTime;
    }
    public String getInitialFollowDesc() {
        return initialFollowDesc;
    }

    public void setInitialFollowDesc(String initialFollowDesc) {
        this.initialFollowDesc = initialFollowDesc;
    }
    public Date getEvaluationDate() {
        return evaluationDate;
    }

    public void setEvaluationDate(Date evaluationDate) {
        this.evaluationDate = evaluationDate;
    }
    public Date getVisaExpirationDate() {
        return visaExpirationDate;
    }

    public void setVisaExpirationDate(Date visaExpirationDate) {
        this.visaExpirationDate = visaExpirationDate;
    }
    public String getAnnexKey() {
        return annexKey;
    }

    public void setAnnexKey(String annexKey) {
        this.annexKey = annexKey;
    }
    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }
    public String getCreateUserKey() {
        return createUserKey;
    }

    public void setCreateUserKey(String createUserKey) {
        this.createUserKey = createUserKey;
    }
    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getUpdateUserKey() {
        return updateUserKey;
    }

    public void setUpdateUserKey(String updateUserKey) {
        this.updateUserKey = updateUserKey;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }

    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getEducational() {
        return educational;
    }

    public void setEducational(String educational) {
        this.educational = educational;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "SysCustomer{" +
            "id=" + id +
            ", primaryKey=" + primaryKey +
            ", uuid=" + uuid +
            ", oldUuid=" + oldUuid +
            ", corpKey=" + corpKey +
            ", csCorpKey=" + csCorpKey +
            ", csUserKey=" + csUserKey +
            ", csUserName=" + csUserName +
            ", sourceCorpKey=" + sourceCorpKey +
            ", sourceUserKey=" + sourceUserKey +
            ", sourceUserName=" + sourceUserName +
            ", sourceChannel=" + sourceChannel +
            ", adviserCorpKey=" + adviserCorpKey +
            ", adviserUserKey=" + adviserUserKey +
            ", adviserUserName=" + adviserUserName +
            ", serverCorpKey=" + serverCorpKey +
            ", serverUserKey=" + serverUserKey +
            ", serverUserName=" + serverUserName +
            ", customerTypeKey=" + customerTypeKey +
            ", code=" + code +
            ", name=" + name +
            ", englishName=" + englishName +
            ", wechatId=" + wechatId +
            ", sex=" + sex +
            ", height=" + height +
            ", weight=" + weight +
            ", birthday=" + birthday +
            ", phone=" + phone +
            ", status=" + status +
            ", idCard=" + idCard +
            ", email=" + email +
            ", address=" + address +
            ", educational=" + educational +
            ", emergencyContactName=" + emergencyContactName +
            ", emergencyContactPhone=" + emergencyContactPhone +
            ", emergencyContactRelationship=" + emergencyContactRelationship +
            ", company=" + company +
            ", jobTitle=" + jobTitle +
            ", industry=" + industry +
            ", accountType=" + accountType +
            ", accountName=" + accountName +
            ", bank=" + bank +
            ", bankNo=" + bankNo +
            ", licenseName=" + licenseName +
            ", licenseCode=" + licenseCode +
            ", incomeRmb=" + incomeRmb +
            ", incomeHkd=" + incomeHkd +
            ", leadSource=" + leadSource +
            ", potentialDemandKey=" + potentialDemandKey +
            ", potentialDemandName=" + potentialDemandName +
            ", referalCorpKey=" + referalCorpKey +
            ", referalCorpName=" + referalCorpName +
            ", referalUserKey=" + referalUserKey +
            ", referalUserName=" + referalUserName +
            ", referalTime=" + referalTime +
            ", province=" + province +
            ", city=" + city +
            ", adviserFlag=" + adviserFlag +
            ", adviserFlagUserKey=" + adviserFlagUserKey +
            ", adviserFlagUserName=" + adviserFlagUserName +
            ", csFlag=" + csFlag +
            ", csFlagUserKey=" + csFlagUserKey +
            ", csFlagUserName=" + csFlagUserName +
            ", place=" + place +
            ", remark=" + remark +
            ", initialFollowTime=" + initialFollowTime +
            ", initialFollowDesc=" + initialFollowDesc +
            ", evaluationDate=" + evaluationDate +
            ", visaExpirationDate=" + visaExpirationDate +
            ", annexKey=" + annexKey +
            ", isDeleted=" + isDeleted +
            ", createUserKey=" + createUserKey +
            ", createUserName=" + createUserName +
            ", createTime=" + createTime +
            ", updateUserKey=" + updateUserKey +
            ", updateUserName=" + updateUserName +
            ", updateTime=" + updateTime +
        "}";
    }
}
